from mcp.server.fastmcp import FastMCP
from urllib.parse import quote


mcp = FastMCP(host='0.0.0.0', port=9876)


@mcp.tool()
async def text2image(text: str, width=1024, height=1024) -> str:
    """文生图：根据一段英文文本，生成一个用于在浏览器中渲染图像的MarkDown格式超链接字符串
    :param text: 一段描述图像场景的文本字符串，必须为英文
    :param width: 待生成的图像宽度
    :param height: 待生成的图像高度
    :return: MarkDown格式的图像超链接字符串，形如： ![](https://...)。大模型在收到该返回值后应直接返回给用户，不应再添加其他任何代码包裹。
    """
    text = quote(text)

    result = f'![](https://image.pollinations.ai/prompt/{text}?width={width}&height={height}&model=flux&enhance=true&private=true&nologo=true&safe=true)'

    return result


if __name__ == '__main__':
    mcp.run(transport='streamable-http')
